// Copyright (c) Appeon. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

namespace SnapObjects.Data
{
    /// <summary>
    ///     Defines the tracking strategies for a model object.
    /// </summary>
    public enum ChangeTrackingStrategy
    {
        /// <summary>
        ///     (Default) Not to track.
        /// </summary>
        NotTrack = 0,

        /// <summary>
        ///     Compares the original value with the current value of the property, to determine whether 
        ///     the data in the model (row) has changed.
        /// </summary>
        Snapshot = 1,

        /// <summary>
        ///     Uses the tracked property state, to determine whether the data in the model (row) has changed.
        /// </summary>
        PropertyState = 2
    }
}
